iT邦幫忙

2023 iThome 鐵人賽

DAY 29
0
自我挑戰組

30天打造自己的RSS閱讀器:Go語言與DevOps的實戰應用系列 第 29

Day 29:在 CI/CD workflow 中增加部署階段,終於要部署到上線環境了!?

  • 分享至 

  • xImage
  •  

時間飛逝,第 29 天已經來臨,你還過得好嗎?
回顧 Day 25,我們已經一同探討了並成功在 docker-compose.yml 檔案中做了適當的設置。今天,我們的目標是在 GitHub Actions 的 .github/workflows/main.yml 檔案中加上部署階段,勇敢地將我們的應用部署到生產環境,為 2023 年的自我挑戰留下完美的一個句點。

GitHub Actions workflow 更新

在我們進入正題之前,不妨先回顧一下目前 .github/workflows/main.yml 的基本架構:

name: CI/CD Pipeline
on:
  push:
    branches:
      - main
jobs:
  build:
    # 中略...
  publish:
    # 中略...

新增 Deploy 階段

此刻,我們將要在這份工作流程中,加入一個全新的 job,專門來處理部署的工作。

deploy:     
  needs: publish
  runs-on: self-hosted
  steps:     
  - name: Checkout code       
    uses: actions/checkout@v4
  - name: Deploy to PROD       
    run: docker-compose -f docker-compose.prod.yml up -d

注意到了嗎?needs: publish 這一行表明這個 job 是建立在 publish 完成之後才會進行。

整理過後,完整的 .github/workflows/main.yml 檔案會呈現如下:

name: CI/CD Pipeline  
on: [push, pull_request]  
jobs:
  build:
    # 中略...
  publish:
    # 中略...   
  deploy:     
    needs: build     
    runs-on: self-hosted
    steps:     
    - name: Checkout code       
      uses: actions/checkout@v4      
    - name: Deploy to PROD       
      run: docker-compose -f docker-compose.prod.yml up -d

今天的旅程中,我們成功地在 GitHub Actions 的 .github/workflows/main.yml 檔案中添增了部署階段,這也是持續集成與持續部署(CI/CD)中極其重要的一環。

未來發展

這次用Go語言開發的RSS閱讀器專案很基本,想談談該專案未來發展的可能方向。

規劃新功能

增加更多來源

目前,我們的RSS閱讀器僅支持基本的RSS來源。未來我們計劃增加對Podcast、YouTube頻道和其他社交媒體來源的支持。

多語言支持

為了使更多人能使用這個應用,我們也計劃添加多語言支持。

性能與穩定性

分佈式架構

為了能夠更好地擴展和處理大量請求,我們計劃將應用升級為分佈式架構。

自動化測試

雖然我們已經有了基本的自動化測試,但未來會增加更多涵蓋各種情況和邊界條件的測試。

社群與合作

開放API

我們計劃開放API,以促進與其他開發者和企業的合作。

社群參與

希望能夠吸引更多開發者參與這個專案,不論是貢獻代碼、提出建議,或是報告問題。

總結

未來的路還很長,但我們對這個RSS閱讀器專案充滿期待和熱情。感謝你們一直以來的支持和陪伴。

明天是這個30天挑戰的最後一天,我們會回顧這整個月的學習旅程,請大家期待!


上一篇
Day 28:番外篇 - k8s 麻瓜也想架 GitHub Actions Runner Controller (3)
下一篇
Day 30:結尾 - 回顧30天的挑戰,分享學到的知識和未來的計劃
系列文
30天打造自己的RSS閱讀器:Go語言與DevOps的實戰應用30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言